CustomPredict

根据置信度(weight)对候选标签(label)进行排序和筛选,以生成最终的预测结果。

输入:
  • input - LabelInfo 结构体数组的地址。每个结构体包含一个整数 label 和一个浮点数 weight

  • input_size - 输入数组中的元素数量。

  • output_num - 期望输出的预测结果数量(Top-K 中的 K)。

  • weight_threshold - 一个浮点数阈值,用于过滤掉置信度过低的预测结果。

  • core_mask - 核掩码 (仅共享存储版本需要)。

输出:
  • output_label - 存储最终预测标签的整数数组地址。

  • output_weight - 存储最终预测权重的浮点数数组地址。

支持平台:

FT78NE MT7004

备注

  • 该算子不区分数据类型,但其处理的 LabelInfo 结构体具有固定的成员类型(int, float)。

共享存储版本:

void custompredict_s(LabelInfo *input, int input_size, int *output_label, float *output_weight, int output_num, float weight_threshold, int core_mask)

C调用示例:

 1#include <stdio.h>
 2#include "custompredict.h"
 3
 4int main() {
 5    LabelInfo *input = (LabelInfo *)0xA0000000; // input in DDR
 6    int *output_label = (int *)0xB0000000;       // output_label in DDR
 7    float *output_weight = (float *)0xC0000000;   // output_weight in DDR
 8
 9    int input_size = 100; // 假设值
10    int output_num = 10;
11    float weight_threshold = 0.5f;
12    int core_mask = 0xff;
13
14    custompredict_s(input, input_size, output_label, output_weight, output_num, weight_threshold, core_mask);
15
16    return 0;
17}

私有存储版本:

void custompredict_p(LabelInfo *input, int input_size, int *output_label, float *output_weight, int output_num, float weight_threshold)

C调用示例:

 1#include <stdio.h>
 2#include "custompredict.h"
 3
 4int main() {
 5    LabelInfo *input = (LabelInfo *)0x10000000; // input in L2
 6    int *output_label = (int *)0x10001000;       // output_label in L2
 7    float *output_weight = (float *)0x10002000;   // output_weight in L2
 8
 9    int input_size = 100; // 假设值
10    int output_num = 10;
11    float weight_threshold = 0.5f;
12
13    custompredict_p(input, input_size, output_label, output_weight, output_num, weight_threshold);
14
15    return 0;
16}